]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agoshell-screenshot: Change to use clutter_stage_paint_to*() API
Jonas Ådahl [Thu, 30 Jul 2020 07:51:06 +0000 (09:51 +0200)]
shell-screenshot: Change to use clutter_stage_paint_to*() API

This eliminates the need to wait for redraws, drawing cursors, and
stiching together cairo images in case the screenshot covers multiple
monitors.

All of that is now handled by mutter itself.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1383

6 years agoendSessionDialog: Support rebooting into the bootloader menu aka ("Boot Options")
Hans de Goede [Wed, 15 Aug 2018 13:03:56 +0000 (15:03 +0200)]
endSessionDialog: Support rebooting into the bootloader menu aka ("Boot Options")

This implements the "Alt" behavior for the "Reboot" button as outlined in
the design here: https://wiki.gnome.org/Design/OS/BootOptions

Note I've tried implemeting this with the AltSwitcher class from
js/ui/status/system.js first, but that puts the button in a St.Bin()
which causes the button to think it is the only button on the dialog
and makes it have rounded corners on both of its bottom corners.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/199

6 years agoendSessionDialog: Immediately add buttons to the dialog
Hans de Goede [Wed, 15 Aug 2018 12:26:19 +0000 (14:26 +0200)]
endSessionDialog: Immediately add buttons to the dialog

Immediately add buttons to the dialog instead of first building an
array of button-info structs.

This is a preparation patch for adding support changing the "Reboot"
button into a "Boot Options" button when Alt is pressed.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/199

6 years agoLoginManager: Add canRebootToBootLoaderMenu and setRebootToBootLoaderMenu methods
Hans de Goede [Wed, 29 Jul 2020 12:22:58 +0000 (14:22 +0200)]
LoginManager: Add canRebootToBootLoaderMenu and setRebootToBootLoaderMenu methods

Add wrappers for the new logind Manager CanRebootToBootLoaderMenu and
SetRebootToBootLoaderMenu dbus methods.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/199

6 years agoci: Explicitly specify job dependencies
Florian Müllner [Mon, 3 Aug 2020 21:41:08 +0000 (23:41 +0200)]
ci: Explicitly specify job dependencies

We can speed up CI a bit by allowing build jobs to run in parallel
with review jobs, and don't have test jobs wait for the flatpak build.

See https://gitlab.gnome.org/help/ci/yaml/README.md#needs for details.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1391

6 years agocleanup: remove controversial naming
Olivier Fourdan [Tue, 4 Aug 2020 08:39:29 +0000 (10:39 +0200)]
cleanup: remove controversial naming

Replace "whitelist" and "blacklist" with "allow" and "deny" in variable
naming, which better represents the purpose of those variables.

There is no functional change.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1393

6 years agost/private: Multiply position in fb coordinates with resource scale
Jonas Dreßler [Sun, 26 Jul 2020 11:26:20 +0000 (13:26 +0200)]
st/private: Multiply position in fb coordinates with resource scale

The framebuffer we use for rendering shadows is scaled by the resource
scale, that means we also need to offset coordinates when translating
them to the framebuffers coordinate system.

So far we forgot to do that when translating the framebuffer using the
position of the actor, which lead to small rendering bugs of
text-shadows for actors allocated at non-zero origins. To fix that,
simply multiply those positions with the actors resource scale.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1390

6 years agoappDisplay: Return false in acceptDrop when not accepting the drop
Jonas Dreßler [Mon, 3 Aug 2020 19:47:42 +0000 (21:47 +0200)]
appDisplay: Return false in acceptDrop when not accepting the drop

Fix what is probably a copy-paste error and return false instead of a
CONTINUE DragMotionResult which is only meant for dragMotion events, not
drop events. This makes sure we don't create a folder when dropping an
app over the drag leeways of another icon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1389

6 years agostyle: Swap text-align in RTL locales
Florian Müllner [Mon, 3 Aug 2020 14:38:17 +0000 (16:38 +0200)]
style: Swap text-align in RTL locales

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3037

6 years agostatus/network: Use D-Bus to launch Settings panels
Florian Müllner [Fri, 31 Jul 2020 18:40:36 +0000 (20:40 +0200)]
status/network: Use D-Bus to launch Settings panels

For more obscure network configurations, we need to launch the
corresponding Settings panel with additional parameters, so we
cannot simply launch the .desktop file.

However we can do better than spawning a command line: Control center
exposes an application action we can use instead, so the process is
launched with the appropriate activation environment and startup
notification support.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1385

6 years agorfkill: Always sync state on construction
Andre Moreira Magalhaes [Fri, 31 Jul 2020 21:11:48 +0000 (18:11 -0300)]
rfkill: Always sync state on construction

This fixes an issue where the indicator can be out of sync until the
RfkillManager (used by it) properties change.

The problem is that multiple instances of the indicator will use
the same RfkillManager instance (getRfkillManager() returns a singleton)
that only guarantees to emit the changed signal in two scenarios:
when the D-Bus proxy connects and when the proxy properties change.

If by the time an indicator is instantiated the RfkillManager's D-Bus
proxy is already connected, that indicator would only sync its state
when the RfkillManager properties change.

Let's fix that by always syncing the state on construction - in the worst
case scenario the RfkillManager's D-Bus proxy won't have connected yet
and the indicator state will be temporarily out of sync but once it gets
connected the indicator will sync again with the correct state.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1386

6 years agoUpdate POTFILES.skip
Piotr Drąg [Sat, 1 Aug 2020 12:31:42 +0000 (14:31 +0200)]
Update POTFILES.skip

It silences false positives on https://l10n.gnome.org/module/gnome-shell/

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1387

6 years agodata: Place the shell into session.slice when using systemd
Benjamin Berg [Wed, 29 Jul 2020 14:59:32 +0000 (16:59 +0200)]
data: Place the shell into session.slice when using systemd

This way we conform more to https://systemd.io/DESKTOP_ENVIRONMENTS

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895

6 years agowindowManager: Wait for X11 services using systemd
Benjamin Berg [Fri, 13 Dec 2019 18:07:16 +0000 (19:07 +0100)]
windowManager: Wait for X11 services using systemd

To do this, we now wait for the start/stop job to complete. We also have
two targets in gnome-session to ensure that everything is working as
expected.

In order to start the services, we simply request the
gnome-session-x11-services-ready.target unit, and wait for it to become
available. To stop, we use the gnome-session-x11-services.target unit
which should stop all services in a way that is entirely race free.

This requires both gnome-session and gnome-settings-daemon changes to
work (which are in the corresponding merge requests).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895

6 years agodata: Create generic org.gnome.Shell.target
Benjamin Berg [Tue, 9 Jun 2020 11:01:39 +0000 (13:01 +0200)]
data: Create generic org.gnome.Shell.target

Move the GNOME shell service file adapation for x11/wayland into the
target/service files. This means that the session definition can simply
pull in org.gnome.Shell.target, without having to care about whether it
is starting an X11 or wayland session.

Note that this currently requires fork'ing to do the test. This will
however not be needed in the long term when ConditionEnvironment becomes
available (see https://github.com/systemd/systemd/pull/15817).

We technically do not need to use template units. But doing so means
that the unit can be translated to the app id more easily (though it is
not yet completely clear how this should look like in the long term).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895

6 years agodata: Remove unused, commented and obsolete Conflicts lines
Benjamin Berg [Thu, 13 Feb 2020 17:41:30 +0000 (18:41 +0100)]
data: Remove unused, commented and obsolete Conflicts lines

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895

6 years agodata: Use org.gnome.Shell prefix for systemd units
Benjamin Berg [Thu, 13 Feb 2020 17:39:32 +0000 (18:39 +0100)]
data: Use org.gnome.Shell prefix for systemd units

In general we want to move towards using reverse domain names for
systemd units. Doing this also means we have a consistent name between
desktop file and systemd unit, allowing us to create a generator that
pulls in the unit as defined in the sessions RequiredComponents.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/895

6 years agoMove screencasting into a separate service process
Jonas Ådahl [Thu, 23 Apr 2020 18:46:44 +0000 (20:46 +0200)]
Move screencasting into a separate service process

Move the screencasting into a separate D-Bus service process, using
PipeWire instead of Clutter API. The service is implemented in
Javascript using the dbusService.js helper, and implements the same API
as was done by screencast.js and the corresponding C code.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1372

6 years agointrospect: Introspect screen size
Jonas Ådahl [Wed, 22 Jul 2020 16:38:22 +0000 (18:38 +0200)]
introspect: Introspect screen size

To be used by the screen cast service.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1372

6 years agodbusService: Queue shutdown check on startup
Jonas Ådahl [Wed, 22 Jul 2020 16:22:38 +0000 (18:22 +0200)]
dbusService: Queue shutdown check on startup

If something started the service, but crashed before managing to make a
method call, we'd end up with the service running indefinitely. Fix this
by queueing a shutdown check immediately on startup.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1372

6 years agostatus/remote-access: Visualize recordings as screen recording
Jonas Ådahl [Tue, 21 Apr 2020 16:06:06 +0000 (18:06 +0200)]
status/remote-access: Visualize recordings as screen recording

If a remote access is marked as a recording, visualize it the same way
as a built in recording. Also don't stop it if there is an actual screen
sharing going on, so that one can use a plain "recording" while still
disabling what is an actual screen sharing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1372

6 years agobackground: Mark pattern backgrounds as loaded
Carlos Garnacho [Thu, 30 Jul 2020 09:45:56 +0000 (11:45 +0200)]
background: Mark pattern backgrounds as loaded

Otherwise we don't let GNOME Shell startup to proceed. Noticed
by accidentally running on the memory GSettings backend.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1381

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Wed, 29 Jul 2020 21:57:19 +0000 (21:57 +0000)]
Update Turkish translation

6 years agopanelMenu: Destroy menu before chaining up
Florian Müllner [Tue, 28 Jul 2020 16:52:53 +0000 (18:52 +0200)]
panelMenu: Destroy menu before chaining up

This avoid some (harmless but annoying) warnings, and is closer to
the original code prior to commit fc342fe8c5 and 557b232c896.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3022

6 years agopopupMenu: Ungrab when removing active menu
Florian Müllner [Tue, 28 Jul 2020 15:50:58 +0000 (17:50 +0200)]
popupMenu: Ungrab when removing active menu

While we do have some handling for removing the active menu, it has
been a no-op for years. The bit that we really care about from the
PopupMenuManager's point of view is the existing grab though. Drop
that instead of calling _closeMenu() directly; ungrabbing will still
call the method indirectly, and it will still be a no-op :-)

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3022

6 years agoutil: Remove shell_util_get_transformed_allocation
Daniel García Moreno [Wed, 29 Jul 2020 10:50:47 +0000 (12:50 +0200)]
util: Remove shell_util_get_transformed_allocation

This helper function could be replaced with the new
clutter_actor_get_transformed_extents, that does the same.

See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1386

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1380

6 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 29 Jul 2020 10:31:04 +0000 (12:31 +0200)]
Updated Spanish translation

6 years agologinDialog: Reset auth prompt on vt switch before fade in
Ray Strode [Mon, 27 Jul 2020 14:58:49 +0000 (10:58 -0400)]
loginDialog: Reset auth prompt on vt switch before fade in

At the moment, if a user switches to the login screen vt,
the login screen fades in whatever was on screen prior, and
then does a reset.

It makes more sense to reset first, so we fade in what the
user is going to interact with instead of what they interacted
with before.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2997
6 years agolayout: Only show ripple animation when overview was toggled
Florian Müllner [Wed, 22 Jul 2020 00:05:48 +0000 (02:05 +0200)]
layout: Only show ripple animation when overview was toggled

On X11, clients can grab keyboard on pointer (for example for popup
menus), and as a result the pushModal() call when opening the overview
fails.

However when the hot corner was used to toggle the overview, we still
show the ripple animation in that case, which is confusing as the action
did not actually happen.

Fix this by only showing the ripples if the overview is animating after
calling toggle(), as that should be a reliable indication of whether
the call was successful.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3005

6 years agobackgroundManager: Always emit 'loaded' signal
Florian Müllner [Wed, 22 Jul 2020 10:32:49 +0000 (12:32 +0200)]
backgroundManager: Always emit 'loaded' signal

As backgrounds are cached, it is possible that we never emit the
'loaded' signal added in commit f386103bc1. We are relying on the
signal though, so do the same as Background and emit the signal
from an idle if the background was already loaded.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1371

6 years agoUpdate Catalan translation
Jordi Mas [Wed, 22 Jul 2020 06:47:17 +0000 (08:47 +0200)]
Update Catalan translation

6 years agoDelay login animation until after wallpaper has loaded
Michael Catanzaro [Tue, 21 Jul 2020 00:00:32 +0000 (19:00 -0500)]
Delay login animation until after wallpaper has loaded

Currently, the login animation can occur before the user's wallpaper has
been loaded. When this happens, we wind up displaying a solid blue
background for half a second or so before the proper background is
displayed. This looks jarring and bad. It's great that we can start
GNOME quickly, but starting up before the wallpaper is ready is *too*
quickly.

I've been meaning to fix this since 2014. Better late than never! We can
just have BackgroundManager emit a loaded signal the first time it loads
its first background, and have the startup animation code wait for that
before proceeding.

Some of this code is by Florian, who helped with promisifying. Thanks!

https://bugzilla.gnome.org/show_bug.cgi?id=734996

6 years agopopupMenu: Handle keypress if numlock is enabled
Olivier Fourdan [Tue, 21 Jul 2020 14:33:04 +0000 (16:33 +0200)]
popupMenu: Handle keypress if numlock is enabled

On Wayland, navigating menus with the keyboard would not open drop-down
menus when NumLock is enabled.

That's old issue (gnome-shell#550) that was not completely fixed with
commit 88556226 because the lock mask needs to be filtered out in
_onKeyPress() as well.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/550
6 years agoUpdate Romanian translation
Daniel Șerbănescu [Tue, 21 Jul 2020 07:08:22 +0000 (07:08 +0000)]
Update Romanian translation

6 years agoUpdate Ukrainian translation
Yuri Chornoivan [Tue, 21 Jul 2020 05:43:54 +0000 (05:43 +0000)]
Update Ukrainian translation

6 years agoappDisplay: Append new icons at the first available page after first
Georges Basile Stavracas Neto [Thu, 25 Jun 2020 20:33:48 +0000 (17:33 -0300)]
appDisplay: Append new icons at the first available page after first

As per design discussion, the first page is a somewhat of a special
page where we really don't want to change anything unless necessary.

Append new icons at the first available slot after the first page.
Make the placeholder icon be appended to the first available page
as well, since it's always used when dragging from folder dialogs.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Use a drag monitor to check for out-of-dialog drags
Georges Basile Stavracas Neto [Thu, 25 Jun 2020 19:51:30 +0000 (16:51 -0300)]
appDisplay: Use a drag monitor to check for out-of-dialog drags

When the app folder dialog handles a drag hover, it starts a timeout
to popdown if dragging outside the "real" dialog area. However, when
dragging inside it, BaseAppView handles all drag hover events which
would disarm the popdown timeout. In cases like this, it's almost
impossible to prevent the timeout from triggering, which always pops
down the dialog.

Add a drag monitor when handling any drag hover (which only happens
when dragging outside the folder's icon grid); and eventually disarm
the popdown timeout from the monitor's motion event. Remove the drag
monitor when dragging over the folder dialog again.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Increase folder dialog popdown timeout
Georges Basile Stavracas Neto [Thu, 25 Jun 2020 19:10:53 +0000 (16:10 -0300)]
appDisplay: Increase folder dialog popdown timeout

App folders are now customizable, and the way to move icons to
another page is by throwing the cursor to either the left or
the right of the grid.

However, doing that triggers the popdown timeout, wich is 600ms
as of now, which is considerably short for such interaction.

Increase this timeout to 1.5 seconds.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Allow reordering folders
Georges Basile Stavracas Neto [Wed, 24 Jun 2020 18:37:42 +0000 (15:37 -0300)]
appDisplay: Allow reordering folders

Implement the methods to sort and query item positions
using the index in the GSettings key, and store the
updated positions when accepting the drop.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Factor out folder loading code
Georges Basile Stavracas Neto [Wed, 24 Jun 2020 18:11:51 +0000 (15:11 -0300)]
appDisplay: Factor out folder loading code

We'll reuse this code to implement custom positioning in
folders.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Only handle DnD when mapped
Georges Basile Stavracas Neto [Wed, 24 Jun 2020 17:56:32 +0000 (14:56 -0300)]
appDisplay: Only handle DnD when mapped

Now that the DnD code is shared between AppDisplay and
FolderView, we hit an unexpected problem: FolderView is
handling drag events even when the folder dialog is hidden.
As a side effect, this spams the journal with warnings.

Only handle drag events when mapped. On unmap, disable
the view's drag monitor, and disconnect from all drag
events.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Move DnD code to BaseAppView
Georges Basile Stavracas Neto [Wed, 24 Jun 2020 17:53:12 +0000 (14:53 -0300)]
appDisplay: Move DnD code to BaseAppView

This code will be shared with FolderView in the next commit, so
avoid duplication already and move the to-be-shared code into the
base class.

Because BaseAppView can handle vertical and horizontal orientations,
adapt the drag overshoot code to also handle horizontal overshoot.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Fully hide icon when dragging
Georges Basile Stavracas Neto [Wed, 24 Jun 2020 15:53:36 +0000 (12:53 -0300)]
appDisplay: Fully hide icon when dragging

The partially visible icon causes more problems than
it solves, visually speaking. Fade it out completely
while dragging.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Ensure icons always are at the correct position
Georges Basile Stavracas Neto [Tue, 23 Jun 2020 15:18:56 +0000 (12:18 -0300)]
appDisplay: Ensure icons always are at the correct position

When redisplaying, we currently only remove and add icons, but
never adjust the position of already added icons. If the icon
position changed, it wouldn't be reflected on the icon grid.

Make sure to move already added icons.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Add placeholder when moving from folder dialog
Georges Basile Stavracas Neto [Tue, 23 Jun 2020 15:05:27 +0000 (12:05 -0300)]
appDisplay: Add placeholder when moving from folder dialog

When moving an icon from a folder dialog, the app grid doesn't
really have an icon to move around.

Add a placeholder icon and hijack it in the various places.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Restore dragged item's position on drag cancel
Georges Basile Stavracas Neto [Tue, 23 Jun 2020 13:33:22 +0000 (10:33 -0300)]
appDisplay: Restore dragged item's position on drag cancel

Otherwise we end up with the grid in an inconsistent state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Allow overshooting any icon
Georges Basile Stavracas Neto [Wed, 27 May 2020 18:49:29 +0000 (15:49 -0300)]
appDisplay: Allow overshooting any icon

Now that the icon being dragged can come from AppDisplay and also
a folder dialog, the check for when to overshoot is broken. Check
if the icon is a BaseAppView icon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Create app folder where the drop happened
Georges Basile Stavracas Neto [Wed, 27 May 2020 01:29:29 +0000 (22:29 -0300)]
appDisplay: Create app folder where the drop happened

Create the app folder where the icon we drop at is located. This
ensures the folder icon doesn't go into the last page, hidden and
solitary.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Don't resort folders when name changes
Georges Basile Stavracas Neto [Tue, 26 May 2020 21:55:18 +0000 (18:55 -0300)]
appDisplay: Don't resort folders when name changes

With a customizable app grid, we don't want folders to move
after renaming. Their position is fixed.

Remove the sort-after-rename code from AppDisplay.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Make FolderIcon draggable
Georges Basile Stavracas Neto [Tue, 26 May 2020 21:26:52 +0000 (18:26 -0300)]
appDisplay: Make FolderIcon draggable

By making it a subclass of AppViewItem, it automagically inherits
the DnD code.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Check 'app-picker-layout' to make icons draggable
Georges Basile Stavracas Neto [Thu, 16 Jul 2020 14:15:03 +0000 (11:15 -0300)]
appDisplay: Check 'app-picker-layout' to make icons draggable

Now we drag not only to the Dash, but also to the icon grid itself,
so make the app icon draggable only when either one or the other is
writable.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Factor out draggable code into AppViewItem
Georges Basile Stavracas Neto [Tue, 26 May 2020 21:05:40 +0000 (18:05 -0300)]
appDisplay: Factor out draggable code into AppViewItem

This will be shared by the FolderIcon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Use custom function to retrieve item page and position
Georges Basile Stavracas Neto [Tue, 26 May 2020 04:41:43 +0000 (01:41 -0300)]
appDisplay: Use custom function to retrieve item page and position

It is important that '_loadApps()' return a sorted list -- adding the
same icons at the same positions but in different orders results in
a wrong icon grid.

Add support for using a custom positioning function, and implement it
in AppDisplay. Because FolderView doesn't implement a custom sorting
function, the items are still sorted alphabetically.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Save pages after dropping
Georges Basile Stavracas Neto [Tue, 26 May 2020 04:41:17 +0000 (01:41 -0300)]
appDisplay: Save pages after dropping

Save the icon grid layout after dropping, and only in
that moment.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Introduce PageManager
Georges Basile Stavracas Neto [Thu, 5 Dec 2019 15:31:52 +0000 (12:31 -0300)]
appDisplay: Introduce PageManager

The PageManager does the heavy lifting between reading the
'app-picker-layout' GSettings key, and saving the new pages.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agogschema: Introduce the 'app-picker-layout' key
Georges Basile Stavracas Neto [Thu, 5 Dec 2019 14:00:21 +0000 (11:00 -0300)]
gschema: Introduce the 'app-picker-layout' key

This is the key that will be used to store the pages and the icons in
each page. The idea is that we we store an a{sv} variant for each page.
This variant will contain <icon id> → array of properties, where we
can store arbitrary data for each icon. The expected output of this
key is:

[
  {
    'polari.desktop': <{ 'position': 0 }>,
    'epiphany.deskop': <{ 'position': 1 }>,
  },
  {
    'telegram.desktop': <{ 'position': 2 }>,
    'builder.desktop': <{ 'position': 0 }>,
    'gitg.desktop': <{ 'position': 1 }>,
  }
]

The toplevel array is sorted, and pages of the grid always show in the
order they are stored.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Allow incomplete pages
Georges Basile Stavracas Neto [Tue, 26 May 2020 01:01:25 +0000 (22:01 -0300)]
appDisplay: Allow incomplete pages

Allow incomplete pages in the main grid, but not on folders.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Move icons when hovering the grid
Georges Basile Stavracas Neto [Mon, 22 Jun 2020 21:22:13 +0000 (18:22 -0300)]
appDisplay: Move icons when hovering the grid

Implement a minimal version of the reflow-on-hover behavior,
which gives a better sense of physicality to the grid.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Factor out item addition and removal methods
Georges Basile Stavracas Neto [Tue, 26 May 2020 13:58:17 +0000 (10:58 -0300)]
appDisplay: Factor out item addition and removal methods

It'll be useful later.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Accept dropping any kind of icon over it
Georges Basile Stavracas Neto [Tue, 26 May 2020 14:19:39 +0000 (11:19 -0300)]
appDisplay: Accept dropping any kind of icon over it

The grid will be able to handle them. As of now, it doesn't
do anything with folder icons, or icons in folders.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Introduce moveItem API
Georges Basile Stavracas Neto [Tue, 26 May 2020 13:58:56 +0000 (10:58 -0300)]
appDisplay: Introduce moveItem API

This is a simplistic API that basically removes the
icon from it's old location, and adds it to its new
location.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoappDisplay: Ignore dragging over leeways
Georges Basile Stavracas Neto [Mon, 25 May 2020 19:00:23 +0000 (16:00 -0300)]
appDisplay: Ignore dragging over leeways

The leeways are parts of the icon that ignore incoming drag
events. This is how IconGrid and IconGridLayout treat it, and
this is how the icons should treat themselves too.

Make AppIcon ignore dragging over the left and right leeways.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agoiconGrid: Add drop target API
Georges Basile Stavracas Neto [Mon, 25 May 2020 18:58:39 +0000 (15:58 -0300)]
iconGrid: Add drop target API

Add a new drop target API. The bulk of it is implemented by
IconGridLayout, since it's the layout manager that knows where
each icon is placed at.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1284

6 years agocalendar-server: Remove delay before event emission
Sebastian Keller [Mon, 20 Jul 2020 10:05:15 +0000 (12:05 +0200)]
calendar-server: Remove delay before event emission

The timeout seems to have been carried over from the old code that
relied on gnome-shell calling 'GetEvents' after every 'Changed' signal
where it was used to throttle the signal. In the new code where
calendar-server is sending the changes themselves via signals this is no
longer necessary and actually causes a delay when switching between
months.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2992

6 years agokeyboard: Fix missing key icons in numeric level
Emre Uyguroglu [Fri, 17 Jul 2020 11:56:14 +0000 (11:56 +0000)]
keyboard: Fix missing key icons in numeric level

Those were missed in commit 57669bca1b2.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2631

6 years agokeyboard: Move named icons into subdirectories
Emre Uyguroglu [Fri, 17 Jul 2020 11:55:14 +0000 (11:55 +0000)]
keyboard: Move named icons into subdirectories

While GtkIconTheme does look up icons in the toplevel icons resource
path, it will only use them as ultimate fallback. That is, if the
icon theme (or the hicolor fallback) include a "keyboard" icon, it
will be used over the "keyboard-enter-symbolic" icon in the resource.

Moving the icons to appropriate subdirectories gives them higher
priority than the fallback names, and thus fixes the issue.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2631

6 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Sun, 19 Jul 2020 12:54:47 +0000 (12:54 +0000)]
Update Brazilian Portuguese translation

6 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Sat, 18 Jul 2020 13:43:51 +0000 (13:43 +0000)]
Update Brazilian Portuguese translation

(cherry picked from commit 222919cfc1e51a7048503cdc52d50c5814250fde)

6 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Fri, 17 Jul 2020 21:36:10 +0000 (21:36 +0000)]
Update Brazilian Portuguese translation

(cherry picked from commit db30fbe3e93cde8690075fbb434d5a336ed0ad6b)

6 years agoextensionDownloader: Fix check for updates with several extensions
Jeremias Ortega [Tue, 14 Jul 2020 04:38:25 +0000 (22:38 -0600)]
extensionDownloader: Fix check for updates with several extensions

When having several extensions installed checking for updates fails.
This is because we are using GET and query params and since we are
sending all the metadata of the extension the server returns 502
when the URL is too long. This error code is ignored safely.

It is only needed to send the version of the extension to check if it
has updates.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2962
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1363

6 years agolayout: Remove redundant background refresh
Jonas Ådahl [Thu, 9 Jul 2020 07:18:27 +0000 (09:18 +0200)]
layout: Remove redundant background refresh

When using the NVIDIA driver, textures tend to loose their pixels when
suspending. In the past we handled this by figuring out when the NVIDIA
driver was used, and reload the background whenever we noticed we
resumed from suspend.

This shouldn't be needed anymore after
https://gitlab.gnome.org/GNOME/mutter/merge_requests/600, as it should
handle this by listening to video-memory-purged signal. Thus remove our
special handling here.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1358

6 years agoUpdate Greek translation
Efstathios Iosifidis [Tue, 14 Jul 2020 20:43:58 +0000 (20:43 +0000)]
Update Greek translation

6 years agoworkspace: Always set state at the end of overview transition
Florian Müllner [Sat, 11 Jul 2020 21:08:42 +0000 (23:08 +0200)]
workspace: Always set state at the end of overview transition

We don't change to the zoomed out state when fading to the overview,
however we should do that after the transition in case the user
switches to the window picker.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

6 years agoworkspace: Reset window opacity after overview transitions
Florian Müllner [Sat, 11 Jul 2020 15:49:04 +0000 (17:49 +0200)]
workspace: Reset window opacity after overview transitions

When using the fade animation when transitioning to the overview instead
of zoom, we fade out all window previews to fully transparent. But after
commit 751189253a removed the old _updateWindowPositions() function,
nothing resets the opacity again, so when switching from the app- to the
window picker, all previews are hidden.

Fix this by always resetting the window preview opacity after showing
or hiding the overview.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

6 years agoworkspace: Always use floating layout for fade transition
Florian Müllner [Sat, 11 Jul 2020 15:38:04 +0000 (17:38 +0200)]
workspace: Always use floating layout for fade transition

We don't animate size and position when fading, so we want all previews
to already be at their final position. However when the app picker is
opened from within the overview, window previews use the zoomed layout,
so that's the state we are then fading when leaving the overview from
the app picker.

Fix that by setting the correct state at the start of the fade transition.

(In the case of fadeToOverview(), the value should always be correct
already, but set it anyway for symmetry with fadeFromOverview())

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

6 years agoworkspacesView: Really don't animate primary view when fading
Florian Müllner [Sat, 11 Jul 2020 16:19:27 +0000 (18:19 +0200)]
workspacesView: Really don't animate primary view when fading

In commit 9297d87775d64 we stopped syncing the primary view's actual
geometry at the start of the transition when doing a fade animation,
however the view animation may still be triggered by an allocation
change.

Prevent those unwanted size changes during fade by keeping track of
the fade state and explicitly skip syncing the geometry while a fade
is ongoing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

6 years agoworkspacesView: Do not skip entire overview transition
Florian Müllner [Sat, 11 Jul 2020 16:10:18 +0000 (18:10 +0200)]
workspacesView: Do not skip entire overview transition

Since commit af543daf1c3, we skip the overview transition when the
actual geometry hasn't been set yet. However with the new layout
manager, the only bit that still needs the separate geometry is
the transition of the view, the workspaces can do their transition
just fine.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

6 years agoUpdate Friulian translation
Fabio Tomat [Sun, 12 Jul 2020 16:08:10 +0000 (16:08 +0000)]
Update Friulian translation

6 years agoUpdate Chinese (China) translation
Boyuan Yang [Sun, 12 Jul 2020 02:35:34 +0000 (02:35 +0000)]
Update Chinese (China) translation

6 years agoUpdate Chinese (China) translation
Boyuan Yang [Sun, 12 Jul 2020 02:14:16 +0000 (02:14 +0000)]
Update Chinese (China) translation

6 years agoworkspacesView: Update visibily when gesture drag begins
Georges Basile Stavracas Neto [Fri, 10 Jul 2020 13:41:09 +0000 (10:41 -0300)]
workspacesView: Update visibily when gesture drag begins

When dragging the workspaces through the swipe gesture, all
workspaces must be visible. WorkspacesView's _updateVisibility()
method special-cases this and ensures that.

However, this method is only called when (1) going to the active
workspace, and (2) when the gesture ends. That means, if there
is any workspace hidden by the time a gesture starts, it is never
shown!

Call _updateVisibility() on startTouchGesture() as well.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2969

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1360

6 years agoUpdate German translation
Tim Sabsch [Thu, 9 Jul 2020 20:29:47 +0000 (20:29 +0000)]
Update German translation

6 years agoworkspaceSwitcherPopup: Set offscreen redirect always
Daniel van Vugt [Wed, 8 Jul 2020 10:06:39 +0000 (18:06 +0800)]
workspaceSwitcherPopup: Set offscreen redirect always

Because for most frames during a workspace switch it's not changing and
we can repaint it faster if it's cached on the GPU as a single texture.

This seems to reduce the render time for workspace switching by more
than 20%.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1356

6 years agoshell/window-tracker: Tighten sandbox ID prefix check
Florian Müllner [Wed, 8 Jul 2020 09:59:13 +0000 (11:59 +0200)]
shell/window-tracker: Tighten sandbox ID prefix check

Since commit b60836932 we only allow WM_CLASS matches for sandboxed
applications if the found app's ID is prefixed by the sandbox ID.

The existing check still has a hole in it though: "org.example.Foo"
and "org.example.FooDevel" are different applications, yet the former
is a prefix of the latter.

So tighten the check by including a trailing "." in the checked prefix;
this excludes cases like the above, while still working for the regular
case of a single .desktop file because our app IDs include the ".desktop"
suffix.

Spotted by wjt.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1357

6 years agoBump version to 3.37.3
Florian Müllner [Tue, 7 Jul 2020 01:04:17 +0000 (03:04 +0200)]
Bump version to 3.37.3

Update NEWS.

6 years agowindowPreview: Adapt to ClutterActor API changes
Jonas Dreßler [Fri, 19 Jun 2020 12:13:12 +0000 (14:13 +0200)]
windowPreview: Adapt to ClutterActor API changes

The API of clutter_actor_allocate_preferred_size() changed with
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1310, so adapt to
this change and pass the origin to the function.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1322

6 years agoworkspacesView: Do not animate primary view geometry when fading
Florian Müllner [Tue, 7 Jul 2020 10:57:51 +0000 (12:57 +0200)]
workspacesView: Do not animate primary view geometry when fading

When going straight to the app picker, we fade in the overview instead
of doing the full-blown zoom transition. In order to keep windows at
their floating position, we must apply the same to the view itself
and not transition to the overview geometry when fading.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1353

6 years agoworkspacesView: Always sync geometry after showing overview
Florian Müllner [Tue, 7 Jul 2020 11:25:47 +0000 (13:25 +0200)]
workspacesView: Always sync geometry after showing overview

We don't always want to sync the geometry when entering the overview,
namely when the fade transition is used.

However we do want the correct geometry once we have entered the overview,
so that workspaces are at their place when switching from the app picker.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1353

6 years agoworkspacesView: Decouple syncing geometry from updating views
Florian Müllner [Tue, 7 Jul 2020 11:23:50 +0000 (13:23 +0200)]
workspacesView: Decouple syncing geometry from updating views

This gives us more control over when the geometry is synced. We
will soon use that to keep the primary view at the work area
geometry while fading to the overview.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1353

6 years agoworkspacesView: Only animate primary view
Florian Müllner [Tue, 7 Jul 2020 11:06:29 +0000 (13:06 +0200)]
workspacesView: Only animate primary view

Non-primary views always use their monitor's work area for their
geometry, so there's nothing to animate when leaving the overview.

The animation is already limited to the primary view when entering
the overview, so this is also more consistent.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1353

6 years agoworkspace: Always start in FLOATING state
Florian Müllner [Tue, 7 Jul 2020 10:44:50 +0000 (12:44 +0200)]
workspace: Always start in FLOATING state

It doesn't matter which animation we use to enter the overview,
we always want to start and end with the floating layout.

The simplest way to achieve that is by creating the state adjustment
with the correct value in the first place.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1353

6 years agoworkspace: Remove reserved slots
Georges Basile Stavracas Neto [Wed, 3 Jun 2020 00:22:40 +0000 (21:22 -0300)]
workspace: Remove reserved slots

This is a pre-3.0 feature that was dropped before
the 3.0 release, but managed to find its way until
now, 11 years later.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1352

6 years agounlockDialog: Small cleanup
Florian Müllner [Mon, 6 Jul 2020 23:21:18 +0000 (01:21 +0200)]
unlockDialog: Small cleanup

It's silly to initialize a variable to 0 right before setting it
to its actual value.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1352

6 years agowindowPreview: Remove slotId property
Jonas Dreßler [Tue, 7 Jul 2020 09:21:02 +0000 (11:21 +0200)]
windowPreview: Remove slotId property

We're no longer using that property, so clean up a bit and remove the
last occurences of it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1351

6 years agoworkspacesView: Add back overview transition
Florian Müllner [Thu, 25 Jun 2020 17:54:54 +0000 (19:54 +0200)]
workspacesView: Add back overview transition

The transition was temporarily removed when switching to the new
workspace layout manager. Now everything is in place to reimplement
it with a combination of the layout manager's state adjustment and
the view's allocation.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

6 years agoworkspacesView: Properly allocate workspaces
Florian Müllner [Fri, 26 Jun 2020 14:04:44 +0000 (16:04 +0200)]
workspacesView: Properly allocate workspaces

So far we've been allocating workspaces in a stack, and relied on
translation to move them to the right position. And as the position
depends on both the workspace's index and the view's viewport, some
care is needed to prevent gestures/scrolling from interfering with
layout updates.

Clean that up by properly allocating workspaces in a row or column,
and use a translation to reflect the current scroll position.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

6 years agoworkspacesView: Don't set full geometry
Florian Müllner [Sat, 27 Jun 2020 15:32:14 +0000 (17:32 +0200)]
workspacesView: Don't set full geometry

It's not used anymore.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

6 years agoworkspacesView: Stop using full geometry
Florian Müllner [Sat, 27 Jun 2020 15:25:25 +0000 (17:25 +0200)]
workspacesView: Stop using full geometry

Since the workspaces themselves stopped using it, there is little
reason for upholding the difference between "full" and "actual"
geometry.

Just base positioning/swiping on the view's allocation.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

6 years agoworkspacesView: Use work area for default geometry
Florian Müllner [Thu, 25 Jun 2020 23:08:29 +0000 (01:08 +0200)]
workspacesView: Use work area for default geometry

The workspace's layout manager keeps the workspace at the same ratio as
the work area, so it makes more sense to base the views' default geometry
on that as well than the monitor area we are using right now.

(It shouldn't matter much in practice, as this only affects views on
non-primary monitors where the work area usually matches the monitor area)

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345

6 years agoworkspacesView: Simplify syncing actual geometry
Florian Müllner [Thu, 25 Jun 2020 23:15:33 +0000 (01:15 +0200)]
workspacesView: Simplify syncing actual geometry

We adjust the size and position of the primary view to match the workspaces
display, but views on other monitors are always set to fill their monitor.

Take that into account and create views with a fixed size and position, then
only sync the primary view to the new geometry.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1345